﻿using PSE.Framework.Communication.Configuration.Adapters;
using System;
using System.Configuration;
using PSE.Framework.Communication.Configuration.Adapters.XmlHttp;

namespace PSE.Framework.Communication.Configuration.XmlHttp
{
	public class XmlHttpOutputConfiguration : OutputAdapterConfiguration 
    {

        [ConfigurationProperty("actions", IsRequired = false)]
        public new XmlHttpOutputAdapterActionConfigurationCollection Actions
        {
            get
            {
                return (XmlHttpOutputAdapterActionConfigurationCollection)base["actions"];
            }
        }

        [ConfigurationProperty("credentials", IsRequired = false)]
        public NetworkCredentialConfiguration Credentials
        {
            get
            {
                return (NetworkCredentialConfiguration)base["credentials"];
            }
        }

        [ConfigurationProperty("proxyCredentials", IsRequired = false)]
        public NetworkCredentialConfiguration ProxyCredentials
        {
            get
            {
                return (NetworkCredentialConfiguration)base["proxyCredentials"];
            }
        }

        [ConfigurationProperty("url", IsRequired = true, DefaultValue = null)]
		public Uri Url
        {
            get
            {
                return (Uri)base["url"];
            }
		}

        [ConfigurationProperty("encoding", IsRequired = false, DefaultValue = "UTF-8")]
        public string Encoding
        {
            get
            {
                return (string)base["encoding"];
            }
        }

        [ConfigurationProperty("namespaces", IsRequired = false)]
        public KeyValueConfigurationCollection Namespaces
        {
            get
            {
                return (KeyValueConfigurationCollection)base["namespaces"];
            }
        }
	}
}